package conson.tech.manage.coupons.entity.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * ClassName: ActivityEditDto
 * Description:  修改领券活动入参实体
 * Author: ZYF
 * Date: 2020/07/20
 * Version: 1.0
 */
@Data
public class ActivityEditDto implements Serializable {

    private static final long serialVersionUID = 5985960136333340981L;

    /**
     * 活动名称
     */
    @ApiModelProperty(value = "活动名称（必填）")
    @NotBlank(message = "活动名称不能为空")
    private String activityName;
    /**
     * 领券类型，0定向发放、1直接领取
     */
    @ApiModelProperty(value = "领券类型 0定向发放、1直接领取（必填）")
    @NotNull(message = "领券类型不能为空")
    private Integer collectType;

    /**
     * 发放时间类型  1:立即发放 2:定时发放
     */
    @ApiModelProperty(value = "发放时间类型  1:立即发放 2:定时发放（非必填）")
    private Integer grantType;

    /**
     * 发放时间 细化到小时
     */
    @ApiModelProperty(value = "发放时间（非必填）")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime grantTime;

    /**
     * 是否到账提醒（0否 1是）
     */
    @ApiModelProperty(value = "是否到账提醒（0否 1是）（非必填）")
    private Integer arriveType;

    /**
     * 是否发送短信（0否 1是）
     */
    @ApiModelProperty(value = "是否发送短信（0否 1是）（非必填）")
    private Integer messageType;


    /**
     * 是否推送AppPush（0否 1是）
     */
    @ApiModelProperty(value = "是否推送AppPush（0否 1是）（非必填）")
    private Integer pushType;

    /**
     * 推送内容
     */
    @ApiModelProperty(value = "推送内容（非必填）")
    private String pushContent;

    /**
     * 活动规则
     */
    @ApiModelProperty(value = "活动规则（非必填）")
    private String avtivityRule;

    /**
     * 活动开始时间
     */
    @ApiModelProperty(value = "活动开始时间（非必填）")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate startTime;

    /**
     * 活动结束时间
     */
    @ApiModelProperty(value = "活动结束时间（非必填）")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate endTime;

    /**
     * 领券活动绑定的优惠券批次信息
     */
    @ApiModelProperty(value = "领券活动绑定的优惠券批次信息")
    List<ActivityCouponSaveDto> couponSaveDtoList;
}
